Using Ctrl + left/right to skip between words, or left/right to cancel a
selection, were causing movement on the screen in the opposite direction
of the glyph on the key. This was surprising and awful UX for RTL users.
This is based on a patch covering the former case by:
Author: Ori Avtalion <ori@avtalion.name>
Date: Tue Apr 20 08:06:23 2010 +0000
https://bugzilla.gnome.org/show_bug.cgi?id=136059
new_pos = current_x > bound_x ? priv->current_pos : priv->selection_bound;
break;
}
- case GTK_MOVEMENT_LOGICAL_POSITIONS:
case GTK_MOVEMENT_WORDS:
+ if (priv->resolved_dir == PANGO_DIRECTION_RTL)
+ count *= -1;
+ /* Fall through */
+ case GTK_MOVEMENT_LOGICAL_POSITIONS:
if (count < 0)
new_pos = MIN (priv->current_pos, priv->selection_bound);
else
}
break;
case GTK_MOVEMENT_WORDS:
+ if (priv->resolved_dir == PANGO_DIRECTION_RTL)
+ count *= -1;
while (count > 0)
{
new_pos = gtk_entry_move_forward_word (entry, new_pos, FALSE);